package sjtu.ist.warehouse4ws.service;

import java.util.List;

import sjtu.ist.warehouse4ws.dao.DomainModelDao;
import sjtu.ist.warehouse4ws.dao.cust.CustDomainModelDao;
import sjtu.ist.warehouse4ws.model.CustDomainmodel;
import sjtu.ist.warehouse4ws.model.Domainmodel;
import sjtu.ist.warehouse4ws.tool.Constants;
import sjtu.ist.warehouse4ws.tool.PropertyHelper;



public class DomainModelServiceImpl implements DomainModelService{

	private DomainModelDao domainModelDao;
	private CustDomainModelDao custDomainModelDao;
	
	public void setDomainModelDao(DomainModelDao domainModelDao) {
		this.domainModelDao = domainModelDao;
	}
	
	public void setCustDomainModelDao(CustDomainModelDao custDomainModelDao) {
		this.custDomainModelDao = custDomainModelDao;
	}

	@Override
	public List<Domainmodel> getDomainModelList() {
		// TODO Auto-generated method stub
		
		return (List<Domainmodel>)domainModelDao.findAllDomainModels();
	}

	@Override
	public void saveDomainModel(Domainmodel domainmodel, int companyId) {
		if(companyId==Constants.ADMIN_COMPANY_ID){
			domainModelDao.saveDomainModel(domainmodel);
		}else{
			CustDomainmodel cdm=new CustDomainmodel();
			PropertyHelper.copyProperties(domainmodel, cdm);
			custDomainModelDao.saveCustDomainModel(cdm);
		}		
	}

	@Override
	public Domainmodel getDomainModel(String id) {
		// TODO Auto-generated method stub
		return domainModelDao.getDomainModel(id);
	}

	@Override
	public List<Domainmodel> getGroupDomainModel(Integer groupId) {
		// TODO Auto-generated method stub
		return domainModelDao.findGroupDomainModels(groupId) ;
	}

	@Override
	public List<Domainmodel> getDomainmodelListByUid(String uid) {
		// TODO Auto-generated method stub
		return domainModelDao.findByUid(uid);
	}
	@Override
	public List<Domainmodel> getDomainmodelListById(String id) {
		// TODO Auto-generated method stub
		return domainModelDao.findById(id);
	}
	@Override
	public List<Domainmodel> getDomainmodelListByGroupAndVersion(String groupId,String versionId) {
		// TODO Auto-generated method stub
		return domainModelDao.findByGroupAndVersion(groupId,versionId);
	}
}
